package fr.generali.accueilclient.gwt.showcase.client.formfield;

import java.util.ArrayList;
import java.util.List;

import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;

import fr.generali.accueilclient.gwt.client.ui.components.form.formitem.ListFormItem;
import fr.generali.accueilclient.gwt.showcase.client.ADummyObject;

public class FormFieldDemo extends Composite {

    private static FormFieldUiBinder uiBinder = GWT.create(FormFieldUiBinder.class);

    interface FormFieldUiBinder extends UiBinder<Widget, FormFieldDemo> {
    }

    @UiField
    ListFormItem<ADummyObject> listboxFormItemEditing;
    
    @UiField
    ListFormItem<ADummyObject> listboxFormItemEditingMandatory;
    
    @UiField
    ListFormItem<ADummyObject> listboxFormItemEditingImportant;
    
    @UiField
    ListFormItem<ADummyObject> listboxFormItemNotEditing;
    
    @UiField
    ListFormItem<ADummyObject> multiListBox;
    
    @UiField
    ListFormItem<ADummyObject> multiSelectListBox;
    
    public FormFieldDemo() {
        initWidget(uiBinder.createAndBindUi(this));
        initValues();
    }
    
    private void initValues() {
        List<ADummyObject> values = new ArrayList<ADummyObject>();
        values.add(new ADummyObject("L'intitulé de l'objet dont la valeur est 42", 42));
        values.add(new ADummyObject("L'intitulé de l'objet dont la valeur est 3", 3));
        values.add(new ADummyObject("L'intitulé de l'objet dont la valeur est 28", 28));

        for (ADummyObject aDummyObject : values) {
            listboxFormItemEditing.addItem(aDummyObject.getaName(), aDummyObject);
            listboxFormItemNotEditing.addItem(aDummyObject.getaName(), aDummyObject);
            listboxFormItemEditingMandatory.addItem(aDummyObject.getaName(), aDummyObject);
            listboxFormItemEditingImportant.addItem(aDummyObject.getaName(), aDummyObject);
            multiListBox.addItem(aDummyObject.getaName(), aDummyObject);
            multiSelectListBox.addItem(aDummyObject.getaName(), aDummyObject);
        }
        
        listboxFormItemEditing.setValue(values.get(0));
        listboxFormItemNotEditing.setValue(values.get(0));
        
        listboxFormItemEditingMandatory.setValue(values.get(1));
        listboxFormItemEditingImportant.setValue(values.get(2));
    }
}
